From: kfraser@localhost.localdomain Date: Mon, 10 Sep 2007 16:49:58 +0000 (+0100) Subject: x86: Handle 'self-IPI' on legacy UP systems with no APIC. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~14984^2~1 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=78569aa816df0cccdb0c8d7e5359a85e66337265;p=xen.git x86: Handle 'self-IPI' on legacy UP systems with no APIC. Signed-off-by: Keir Fraser --- diff --git a/xen/arch/x86/smp.c b/xen/arch/x86/smp.c index 31fc8adbe6..1d83a3aba3 100644 --- a/xen/arch/x86/smp.c +++ b/xen/arch/x86/smp.c @@ -279,6 +279,19 @@ int on_selected_cpus( ASSERT(local_irq_is_enabled()); + /* Legacy UP system with no APIC to deliver IPIs? */ + if ( unlikely(!cpu_has_apic) ) + { + ASSERT(num_online_cpus() == 1); + if ( cpu_isset(0, selected) ) + { + local_irq_disable(); + func(info); + local_irq_enable(); + } + return 0; + } + if ( nr_cpus == 0 ) return 0;